package com.wuzao.dataStructure.listTest;

import org.junit.Test;

import java.util.LinkedList;

/**
 * 可以使用 LinkedList 类来实现双向链表（Doubly Linked List）。
 *
 * LinkedList 是 Java 的标准库类，位于 java.util 包中，底层采用双向链表实现，因此具有插入和删除效率高的特点。
 */

public class LinkedListTest {
    @Test
    public void basicTest(){
        // 创建一个 LinkedList
        LinkedList<String> list = new LinkedList<>();

        // 添加元素
        list.add("A");   // 在链表尾部添加
        list.addFirst("B"); // 在链表头部添加
        list.addLast("C");  // 等同于 add()

        // 在指定位置增加元素
        list.add(1, "hhh");

        System.out.println("初始链表: " + list);

        // 访问元素
        System.out.println("第一个元素: " + list.getFirst());
        System.out.println("最后一个元素: " + list.getLast());

        // 删除元素
        list.removeFirst(); // 删除头部元素
        list.removeLast();  // 删除尾部元素
        System.out.println("删除后链表: " + list);

        // 遍历链表
        System.out.println("链表元素:");
        for (String item : list) {
            System.out.println(item);
        }
    }
}
